ヘッダーをスキップ
Oracle TimesTen In-Memory Database APIおよびSQLリファレンス・ガイド
リリース6.0
B25770-02
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

SelectList

SQL構文

SELECT文のSelectListパラメータの構文は、次のとおりです。

{* |  [Owner.]TableName.* |
  { Expression | [[Owner.]TableName.]ColumnName |
    [[Owner.]TableName.]ROWID | NULL
  }
  [[AS] ColumnAlias] } [,...]

パラメータ

SELECT文のSelectListには、次のパラメータがあります。

*
問合せ結果の列として、FROM句に指定されたすべての表のすべての列を含めます。
[Owner.]TableName.*
指定した表のすべての列を結果に含めます。
Expression
複雑な式でも記述できます。たとえば、FROM句に指定されたいずれかの表の単一の列を指定したり、集計関数、算術演算子、複数の列またはNULLを含めることができます。SelectListに1つ以上の集計関数を指定した場合、GROUP BY句に指定されていない列名を指定することはできません。

FROM句を含まないSELECT文では、GROUP BYおよびHAVING句を使用できません。この文では、列、ROWIDまたは集計を参照できません。指定できるのは、定数、日付関数、ユーザー関数、動的パラメータ、順序または列です。ORDER BYまたはWHERE句を含めることができます。戻されるのは1行のみです。

[ [Owner.]Table.]
ColumnName
指定された所有者の指定された表の特定の列を含めます。順序のCURRVALまたはNEXTVAL列も指定できます。
[ [Owner.]Table.]
ROWID
指定された所有者の指定された表のROWID擬似列を含めます。
NULL
NULLを指定した場合、デフォルトではVARCHAR(0)のデータ型が生成されます。結果を別のデータ型に変換するには、CAST関数を使用します。
SELECT内で定数を使用できる場合は、NULLを指定できます。
ORDER BY句にはNULLを指定できます。
ColumnAlias
ORDER BY句で使用されます。列の別名はSelectListの列と対応している必要があります。同じ別名で複数の列を識別することができます。

{* |  [Owner.]TableName.* |
  { Expression | [[Owner.]TableName.]ColumnName |
    [[Owner.]TableName.]ROWID
  }
  [[AS] ColumnAlias] } [,...]

説明
例13.96

次の文は、部品が配送されるまでの平均日数を返します。

SELECT AVG(DeliveryDays)  
FROM Purchasing.SupplyPrice; 
 

次の文は、20日未満で配送されるすべての部品の部品番号および配送時刻が返されます。

SELECT PartNumber, DeliveryDays FROM Purchasing.SupplyPrice WHERE DeliveryDays < 20;

単一の部品で複数行が返される場合があります。

例13.97

次の文は、各部品の部品番号と平均価格を返します。

SELECT PartNumber, AVG(UnitPrice)  
FROM Purchasing.SupplyPrice 
GROUP BY PartNumber; 
例13.98

この例では、結合によってカリフォルニア州の業者の名前と住所が返されます。行は、PartNumberの昇順で返されます。重複するPartNumberを含む行は、VendorNameの昇順で返されます。

FROM句では、SelectListとWHERE句の両方で使用される、2つの相関名(vとs)を定義しています。

VendorNumberは、VendorsとSupplyPriceで共通する唯一の列です。

SELECT PartNumber, VendorName, s.VendorNumber, 
       VendorCity 
FROM Purchasing.SupplyPrice s, 
     Purchasing.Vendors v 
WHERE s.VendorNumber = v.VendorNumber 
AND VendorState = 'CA' 
ORDER BY PartNumber, VendorName; 
例13.99

この問合せでは、表Purchasing.Partsをそれ自身に結合して、シリアル番号が1133-P-01の部品と同じ販売価格の部品を特定します。

SELECT q.PartNumber, q.SalesPrice 
FROM Purchasing.Parts p, Purchasing.Parts q 
WHERE p.SalesPrice = q.SalesPrice AND 
      p.SerialNumber = '1133-P-01'; 
例13.100

次に、特定の行のROWIDを取得する方法の例を示します。取得したROWIDの値は、後で別のSELECT文、CREATE VIEW文またはUPDATE文で使用できます。

SELECT ROWID 
FROM Purchasing.Vendors
WHERE VendorNumber = 123; 
例13.101

次に、列の別名を使用して、employees表からデータを取得する方法の例を示します。

SELECT max(salary) AS max_salary FROM employees;